/*
 * Copyright (C) 2021 The Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package com.oushangfeng.pinneddemo.custom.categorylist;

import com.oushangfeng.pinneddemo.ResourceTable;
import com.oushangfeng.pinneddemo.datainterface.CategoryItemBase;

import ohos.agp.components.Component;
import ohos.agp.components.LayoutScatter;
import ohos.agp.components.Text;
import ohos.app.Context;

/**
 * HeadItem
 *
 * @since 2021-03-27
 * Created by oubowu on 2021/3/27 10:29
 * Head item which display a category name in the list container item.
 */
public class HeadItem implements CategoryItemBase {
    /**
     * HeadItem type
     */
    public static final int ITEM_TYPE = 0;

    private final Context context;
    private String headText;

    HeadItem(Context context, String headText) {
        this.context = context;
        this.headText = headText;
    }

    /**
     * Set component content
     *
     * @param component the component to set
     */
    @Override
    public void bindComponent(Component component) {
        Text headerText = (Text) component.findComponentById(ResourceTable.Id_header_item_content_text);
        headerText.setText(headText);
    }

    /**
     * Create component
     *
     * @return component
     */
    @Override
    public Component createComponent() {
        return LayoutScatter.getInstance(context).parse(ResourceTable.Layout_list_item_header,
                null, false);
    }

    /**
     * Get the item type of this category item
     *
     * @return category item type
     */
    @Override
    public int getItemType() {
        return ITEM_TYPE;
    }

    @Override
    public String getItem() {
        return headText;
    }

    @Override
    public void setItem(String value) {
        headText = value;
    }

    @Override
    public String getItemName() {
        return headText;
    }
}
